草庐IT

Android isScreenOn Nullpointer异常

全部标签

c++ - boost 异常处理

我正在考虑在我的应用程序中使用boost异常处理。采用boost异常处理的主要好处是我可以将元数据添加到异常中。这可以简化调试并允许在展开异常堆栈时向上传播更多信息。但是我不清楚这对性能的影响。如何实现boost异常处理-error_info对象是否存储在内部映射中(每次插入时都插入log(n))!boost异常处理的任何已知缺点! 最佳答案 正如你所说,据我所见,以下负载伴随对于运算符newerror_info用于初始化shared_ptrnewexception_detail::error_info_container_impl

c++ - 如何通过运行时类型抛出异常?

我想调用一个可能会抛出异常的函数。如果确实抛出异常,我想捕获它并将异常对象传递给处理程序函数。处理程序函数的默认实现只是抛出异常。以下是用于说明问题的精简代码:structbase_exception:exception{charconst*what()constthrow(){return"base_exception";}};structderived_exception:base_exception{charconst*what()constthrow(){return"derived_exception";}};voidexception_handler(base_except

c++ - 重新打包异常,还是保持它们完好无损?

我正在编写一些具有2个(主要)子系统的类。一部分依赖于boost::filesystem而另一部分依赖于tinyxml。(基本上,它读取xml,并根据xml的数据使用boost::filesystem的函数来访问其他文件)。现在这两个都“可能”抛出异常。我想知道如何处理这些异常:类本身-在大多数情况下-不能“修复”异常而只能将其抛回。(最可能的情况是用户输入错误)。但是遇到这种情况该怎么办呢?-boost::filesystem和tinyxml都有自己的异常(exception),彼此不完全兼容。我是否应该只期望此类的用户处理boost/tinyxml异常?-到目前为止,这些库的全部使

c++ - 我应该向现有代码库添加异常处理吗?

我想知道在现有代码中添加异常处理的优点和缺点。我致力于在Windows环境中控制硬件卡的SDK。SDK由100多个相互交互的DLL组成。我们现有的代码库可能包含100000行(如果不是1000000行的话)代码行。我们的模块也是大量多线程的。我们链接到正确的库,以便我们使用nothrownew(lic.lib而不是licp.lib)。大部分代码没有异常处理。编写代码时考虑到了这一点。int*p=newint[size];if(p==NULL){//handlethiscase...//mostprobablyreturnanerrorcode}char*q=newchar[size];

调试器中的 C++ 单步抛出异常

我有一个C++应用程序,当我尝试从断点单步执行时会抛出异常。例如:1)从附加了VS20100调试器的启动应用程序。2)设置断点。在哪里似乎并不重要。3)在应用程序中执行某些操作,使其到达断点。**VS2010突破点4)将调试器单步执行到下一行代码。VS2010弹出消息框有这个异常:“SimpleGraphSDI.exe中0x087df66f处未处理的异常:0xC0000005:访问冲突。”请注意,如果我在连续两行代码上设置断点,然后按运行从一行前进到另一行,应用程序将“运行”到下一行代码,不会出现任何问题。访问冲突仅在我使用VS2010中的单步命令时出现。应用程序中的某些代码自VC6以

c++ - 值传递异常

当我编写try/catchblock时,我总是按值抛出对象并按引用捕获。我还应用派生类最多的类必须在前的规则。今天我试图通过违反这条主要规则的BYVALUE来捕捉。下面的代码可以毫无问题地执行并打印"A4"。问题:将什么类型的CCA参数传递给执行的异常处理程序?抛出的原始对象是CCB按值传递给CCA对象:这是内存切片问题的示例还是某种损坏,即对象CCA不能完全信任?问候AFGclassCCA{intm_value;public:CCA(intvalue):m_value(value){}};classCCB:publicCCA{public:CCB(intvalue):CCA(valu

c++ - GCC 4.8.1、C++11、共享库和异常处理问题

我的项目包括以下内容:我的程序,主要是用C++11编写的(因此尝试在C++03模式下编译它是不切实际的)共享库(https://github.com/SOCI/soci),使用相同的编译器编译SOCI抛出我需要在我的代码中捕获的异常。它曾经与GCC4.7.3一起使用,但现在我已经迁移到GCC4.8.1它不再适用了:异常会通过所有处理程序(包括catch(...))并导致终止:terminatecalledafterthrowinganinstanceof'soci::mysql_soci_error'what():Table'brphrprhprh'doesn'texistThepro

OOD DCA视频异常检测中的分而治之:全面回顾和新方法

papercodeDivideandConquerinVideoAnomalyDetection:AComprehensiveReviewandNewApproach视频异常检测中的分而治之:全面回顾和新方法        摘要—视频异常检测是一项复杂的任务,“分而治之”原则通常被认为是解决复杂问题的有效方法。值得注意的是,最近的视频异常检测方法揭示了分而治之哲学的应用(尽管与传统用法截然不同),产生了令人印象深刻的结果。本文从六个维度系统地回顾了这些文献,旨在加强分而治之策略在视频异常检测中的应用。此外,基于从这篇综述中获得的见解,提出了一种将人体骨骼框架与视频数据分析技术相结合的新方法。该

Python编程中的异常处理

什么是异常? 程序错误(errors)有时也被称为程序异常(exceptions),这是每个编程人员都会经常遇到的问题。在过去,当遇到这类情况时,程序会终止执行并显示错误信息,通常是以Traceback的形式展示详细的异常报告。然而,Python提供了一项强大的功能,允许我们捕捉这些异常并编写相应的异常处理程序。当异常被捕捉时,会执行相应的异常处理程序,从而使程序能够继续执行,而不是立即终止。这样的机制极大地增强了程序的健壮性和容错能力。示例:Python提供了多种内置的异常类型在Python中,异常是程序运行时发生的错误情况。Python提供了多种内置的异常类型,用于处理不同的错误场景。以下

c++ - 在 catch block 中抛出异常会导致两个异常同时发生吗?

这个问题在这里已经有了答案:Nestedtry...catchinsideC++exceptionhandler?(2个答案)关闭去年。考虑以下C++代码:classMyException{};voidsomeFunction(){try{///...codethatmaythrow}catch(std::exception&e){throwMyException();}}问题异常e是在catchblock的开头还是在catchblock的末尾被吸收?在第二种情况下,抛出新的异常会导致两个异常在运行中,这不是我想要的。我想吸收std::exception并开始我自己的类型之一。